home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Amiga Tools 2
/
Amiga Tools 2.iso
/
tex
/
macros
/
source
/
contrib
/
misc
/
setspace.sty
< prev
next >
Wrap
Text File
|
1995-03-09
|
13KB
|
310 lines
%%% ======================================================================
%%% @LaTeX-style-file{
%%% filename = "setspace.sty",
%%% version = "3.1",
%%% date = "25 May 1994",
%%% time = "10:21:09.67 CDT",
%%% author = "George D. Greenwade",
%%% address = "Department of Economics and Business Analysis
%%% College of Business Administration
%%% P. O. Box 2118
%%% Sam Houston State University
%%% Huntsville, Texas, USA 77341-2118",
%%% email = "bed_gdg@SHSU.edu (Internet)
%%% BED_GDG@SHSU (BITNET)
%%% SHSU::BED_GDG (THENET)",
%%% telephone = "(409) 294-1266",
%%% FAX = "(409) 294-3712",
%%% supported = "yes",
%%% archived = "SHSU*",
%%% keywords = "LaTeX style, spacing, doublespace, half spacing,
%%% modifications to original",
%%% codetable = "ISO/ASCII",
%%% checksum = "14962 309 1381 13018",
%%% docstring = "This is a very quick hack to get setspace.sty
%%% to work with LaTeX2e as well as 2.09 with and
%%% without NFSS -- but it does work on the small
%%% test I've run. Comments welcome!
%%%
%%% The primitive logic is that we can test for
%%% the existence the definition of
%%% \selectfont -- not in LaTeX 2.09 without NFSS
%%% (prior toggle -- version 2.x)
%%% \@newbaseline -- defined in NFSS but not in
%%% LaTeX 2e (current toggle -- version 3.0)
%%%
%%% This is a modification to Erica Harris'
%%% setspace.sty. The main aspects of this
%%% modification deal with the definitions of
%%% \doublespacing, \onehalfspacing, and
%%% \singlespacing (these are near the beginning of
%%% the file). Primarily, these deal with adding
%%% fontsize changes to guarantee that the new
%%% baseline is properly defined and placed into
%%% action. The extra \vskip in the definition of
%%% \singlespacing seems to make for a cleaner
%%% transition from multiple spacing back to single
%%% spacing. These did not appear warrranted for
%%% other size changes.
%%%
%%% Modified by GDG on November 1, 1992, to allow
%%% for use of New Font Selection Scheme.
%%%
%%% Modified by GDG on June 4, 1993, to correct
%%% for spacing tokens in defintion of \@setsize
%%% Thanks to Kaja P. Christiansen <kaja@daimi.aau.dk>
%%% for the fix!!
%%%
%%% Modified by GDG on May 24, 1994, to change toggle
%%% definition from \selectfont to \@newbaseline.
%%%
%%% Modified by GDG on May 25, 1994, to add
%%% definition of \everydisplay -- this part of
%%% the code was apparently written by Geoffrey
%%% Tobin on Thu 23 Jan 1992 and was provided by
%%% stanton@haas.berkeley.edu (Richard Stanton).
%%% This should help with some of the awkward math
%%% placements in changing spacings.
%%%
%%% The original headers of the main file cover the
%%% major aspects of this file and its use.
%%%
%%% The checksum field above contains a CRC-16
%%% checksum as the first value, followed by the
%%% equivalent of the standard UNIX wc (word
%%% count) utility output of lines, words, and
%%% characters. This is produced by Robert
%%% Solovay's checksum utility."
%%% }
%%% ======================================================================
%% FILE: setspace.sty in SYS2.TEX.PUB.ISULATEX.STYLES
%% AUTHOR: Erica M. S. Harris
%% DATE: April 1990
%% MOD: March 1991
%% DESCR: LaTeX Document style option "setspace"
%% Usage: \documentstyle[...,setspace,...]{...}
%% Based on the doublespace option created by Stephen Page.
%%
%% This style option provides commands and environments for doing
%% double and one-and-a-half spacing based on pt size.
%%
%% Single spacing is the default.
%%
%% Three commands, \doublespacing, \onehalfspacing, and
%% \singlespacing, are for use in the preamble to set the overall
%% spacing for the document. If a different spacing is required then
%% the \setstretch{baselinestretch} command can be used in the
%% preamble to set the baselinestretch appropriately. The default
%% spacing with this style option is single spacing.
%%
%% Three environments, singlespace, onehalfspace, and doublespace,
%% allow the spacing to be changed within the document. Both the
%% onehalfspace and doublespace environments are intended to increase
%% the spacing, so the onehalfspace environment should not be used in
%% a double spaced document. If an increased spacing different from
%% one-and-a-half or double spacing is required then the spacing
%% environment can be used. The spacing environment takes one
%% argument which is the larger baselinestretch to use,
%% e.g., \begin{spacing}{2.5}.
%%
%% \footins is adjusted the same as \parskip - appears to work. Lose
%% stretch parts but don't consider that to be crucial
%%
%% Removed code for altering spacing before and after displayed
%% equations - just looked too much.
%%
%% MODS:
%% Redefinition of \spacing and \endspacing for consistency with
%% TeX 3.x inserted by George Greenwade. Modification provided by
%% Philip Ross (ROSS@UK.AC.ABDN.BIOMED) and John Byrne via INFO-TeX.
%%
%% PLEASE REPORT ANY BUGS
%%
%% Old Documentation follows:
%% 1. A new environment "singlespace" is provided, within which single
%% spacing will apply.
%% JFL - changed so that it works in regular text and so that
%% vertical space before and after is correctly computed
%% 2. Double spacing is turned off within footnotes and floats (figures
%% and tables).
%% 3. Proper double spacing happens below tabular environments and in
%% other places where LaTeX uses a strut.
%% 4. Slightly more space is inserted before footnotes.
%% 5. JFL - fixes spacing before and after displayed math
%%
%%
%% mods: Jean-Francois Lamy
%% lamy@ai.toronto.edu
%% lamy@utai.uucp
%%
%% POSSIBLE BUGS:
%% . Increasing struts may possibly cause some other obscure part of
%% formatting to fall over.
%% . \begin{singlespace}\begin{quote} produces the wrong spacing before
%% the quote (extra glue is inserted).
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\def\doublespacing{\ifcase \@ptsize \relax % 10pt
\def\baselinestretch{1.667}
\or % 11pt
\def\baselinestretch{1.618}
\or % 12pt
\def\baselinestretch{1.655}
\fi
\ifx\undefined\@newbaseline% NFSS not present; 2.09 or 2e
\ifx\@currsize\normalsize\@normalsize\else\@currsize\fi%
\else% NFSS (2.09) present
\@newbaseline%
\fi%
}
\def\onehalfspacing{\ifcase \@ptsize \relax % 10pt
\def\baselinestretch{1.25}
\or % 11pt
\def\baselinestretch{1.213}
\or % 12pt
\def\baselinestretch{1.241}
\fi
\ifx\undefined\@newbaseline% NFSS not present; 2.09 or 2e
\ifx\@currsize\normalsize\@normalsize\else\@currsize\fi%
\else% NFSS (2.09) present
\@newbaseline%
\fi%
}
\def\singlespacing{\def\baselinestretch{1}
\ifx\undefined\@newbaseline% NFSS not present; 2.09 or 2e
\ifx\@currsize\normalsize\@normalsize\else\@currsize\fi%
\else% NFSS (2.09) present
\@newbaseline%
\fi%
\vskip\baselineskip% Correction for coming into singlespace
}
\def\setstretch#1{\renewcommand{\baselinestretch}{#1}}
%---Stretch the baseline BEFORE calculating the strut size. This improves
% spacing below tabular environments etc., probably...
% Comments are welcomed.
\ifx\undefined\@newbaseline% NFSS not present; 2.09 or 2e
\def\@setsize#1#2#3#4{\@nomath#1%--modified 1993.04.07--GDG per KPC
\let\@currsize#1\baselineskip
#2\baselineskip\baselinestretch\baselineskip
\parskip\baselinestretch\parskip
\setbox\strutbox\hbox{\vrule height.7\baselineskip
depth.3\baselineskip width\z@}%
\skip\footins \baselinestretch\skip\footins
\normalbaselineskip\baselineskip#3#4}
\else% NFSS (2.09) present
\def\@newbaseline{\setnew@baselineskip
\baselineskip\baselinestretch\baselineskip
\setbox\strutbox\hbox{\vrule\@height.7\baselineskip
\@depth.3\baselineskip \@width\z@}%
\normalbaselineskip\baselineskip}%
\fi%
%---Increase the space between last line of text and footnote rule.
%\skip\footins 20pt plus4pt minus4pt
%---Reset baselinestretch within footnotes and floats.
\def\@xfloat#1[#2]{\ifhmode \@bsphack\@floatpenalty -\@Mii\else
\@floatpenalty-\@Miii\fi\def\@captype{#1}\ifinner
\@parmoderr\@floatpenalty\z@
\else\@next\@currbox\@freelist{\@tempcnta\csname ftype@#1\endcsname
\multiply\@tempcnta\@xxxii\advance\@tempcnta\sixt@@n
\@tfor \@tempa :=#2\do
{\if\@tempa h\advance\@tempcnta \@ne\fi
\if\@tempa t\advance\@tempcnta \tw@\fi
\if\@tempa b\advance\@tempcnta 4\relax\fi
\if\@tempa p\advance\@tempcnta 8\relax\fi
}\global\count\@currbox\@tempcnta}\@fltovf\fi
\global\setbox\@currbox\vbox\bgroup
\def\baselinestretch{1}\@normalsize
\boxmaxdepth\z@
\hsize\columnwidth \@parboxrestore}
\long\def\@footnotetext#1{\insert\footins{\def\baselinestretch{1}\footnotesize
\interlinepenalty\interfootnotelinepenalty
\splittopskip\footnotesep
\splitmaxdepth \dp\strutbox \floatingpenalty \@MM
\hsize\columnwidth \@parboxrestore
\edef\@currentlabel{\csname p@footnote\endcsname\@thefnmark}\@makefntext
{\rule{\z@}{\footnotesep}\ignorespaces
#1\strut}}}
% A single spaced quote (say) is done by surrounding singlespace with quote.
%
\def\singlespace{%
\vskip\baselineskip%
\def\baselinestretch{1}%
\ifx\undefined\@newbaseline% NFSS not present; 2.09 or 2e
\ifx\@currsize\normalsize\@normalsize\else\@currsize\fi%
\else% NFSS (2.09) present
\@newbaseline%
\fi%
\vskip-\baselineskip}
\def\endsinglespace{\par}
% spacing, doublespace and onehalfspace all are meant to INCREASE the
% spacing (i.e. calling onehalfspace from within doublespace will not
% produce a graceful transition between spacings)
%
% Next two definitions fixed for consistency with TeX 3.x
\def\spacing#1{\par%
\begingroup % moved from \endspacing by PGBR 29-1-91
\def\baselinestretch{#1}%
\ifx\undefined\@newbaseline% NFSS not present; 2.09 or 2e
\ifx\@currsize\normalsize\@normalsize\else\@currsize\fi%
\else% NFSS (2.09) present
\@newbaseline%
\fi%
}
\def\endspacing{\par%
\vskip \parskip%
\vskip \baselineskip%
\endgroup%
\vskip -\parskip%
\vskip -\baselineskip}
% one and a half spacing is 1.5 x pt size
\def\onehalfspace{\ifcase \@ptsize \relax % 10pt
\spacing{1.25}
\or % 11pt
\spacing{1.213}
\or % 12pt
\spacing{1.241}
\fi}
\let\endonehalfspace=\endspacing
% double spacing is 2 x pt size
\def\doublespace{\ifcase \@ptsize \relax % 10pt
\spacing{1.667}
\or % 11pt
\spacing{1.618}
\or % 12pt
\spacing{1.655}
\fi}
\let\enddoublespace=\endspacing
% gt - EMSH chose to omit display math part that follows.
% She wrote (see above) that the "altered spacing before and after displayed
% equations ... just looked too much".
%
% Fix up spacing before and after displayed math
% (arraystretch seems to do a fine job for inside LaTeX displayed math,
% since array and eqnarray seem to be affected as expected).
% Changing \baselinestretch and doing a font change also works if done here,
% but then you have to change @setsize to remove the call to @nomath)
%
\everydisplay{
\abovedisplayskip \baselinestretch\abovedisplayskip%
\belowdisplayskip \abovedisplayskip%
\abovedisplayshortskip \baselinestretch\abovedisplayshortskip%
\belowdisplayshortskip \baselinestretch\belowdisplayshortskip}
\endinput